package com.ruoyi.user.domain;

import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.entity.concat.ITimeEntity;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.Entity;

/**
 * 用户管理对象 mg_user
 *
 * @author ruoyi
 * @date 2023-12-19
 */
public class MgUser extends Entity implements ITimeEntity<Long>
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "用户ID")
    private Integer id;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realname;
    /** 名 */
//    @Excel(name = "真实姓名")
    private String userName;

    /** 微信号 */
    @Excel(name = "微信号")
    private String wxCode;

    /** 密码 */
//    @Excel(name = "密码")
    private String password;

    /** 安全符 */
//    @Excel(name = "安全符")
    private String salt;

    /** 头像 */
//    @Excel(name = "头像")
    private String avatar;



    /** 手机号 */
    @Excel(name = "手机号")
    private String mobile;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 0 未选择 1 男 2 女  */
//    @Excel(name = "0 未选择 1 男 2 女 ")
    private String sex;

    /** 简介 */
//    @Excel(name = "简介")
    private String description;

    /** 单位 */
    @Excel(name = "单位")
    private String organizationCode;

    @Excel(name = "身份")
    private String identityName;

    @Excel(name = "推荐人ID")
    private Long recommendedUserId;

    /** 年龄 */
//    @Excel(name = "年龄")
    private String age;

    /** 团队id 0 代表 没有加入任何团队 */
//    @Excel(name = "会员类别",readConverterExp = "0=普通会员")
    private Long teamId;
    @Excel(name = "会员类别")
    private String MembershipName;
    /**
     * 团队名称
     */
    @Excel(name = "所属团队")
    private String teamName;

    /**  */
//    @Excel(name = "")
    private String birthday;

    /** 职业身份 编号 */
//    @Excel(name = "身份",readConverterExp = "1=本科生,1=女,2=未知")
    private Integer identity;


    /** 状态,0禁用,1正常,2未激活,3在职，4离职 */
    private String status;

    /** 最后登录时间 */


    /** 推荐人编号 */
//    @Excel(name = "登录次数")
    private Long loginNum;

    
    /**
     * 学术币
     */
    @Excel(name = "剩余学术币")
    private BigDecimal academicCurrency;

    /**
     * 累计使用的学术币
     */
    @Excel(name = "累计使用的学术币")
    private BigDecimal useOfAcademicCoins;
    /**
     * 最低学术币
     */
    private BigDecimal minAcademicCurrency;
    /**
     * 最高学术币
     */
    private BigDecimal maxAcademicCurrency;
    /**
     * 开始时间
     */
    private Long startTime;
    /**
     * 结束时间
     */
    private Long endTime;
    /**
     * 查重券
     */
    @Excel(name = "查重券")
    private Integer duplicateCheckCoupon;
    
    private BigDecimal discount;

    /**
     * 欠款状态
     */
    @Excel(name = "欠款状态", readConverterExp = "0=否,1=是")
    private Byte arrears;

    /** 创建时间 */
    @Excel(name="注册时间")
    private Long createTime;
    @Excel(name = "最后登录时间")
    private String lastLoginTime;
    /**
     * 备注
     */
    @Excel(name = "科藤备注")
    private String remark;



    /**
     * 是否是团长 0 不是 1 是
     */
    private Byte isRegimental;




    /**
     * 更新时间
     */
//    @Excel(name = "更新时间")
    private Long updateTime;
    
    /**
     * 加入时间
     */
    private Long joinTime;
    
    /**
     * ids 数组
     */
    private List<Long> ids;

    @Override
    public Long getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public List<Long> getIds() {
        return ids;
    }

    public void setIds(List<Long> ids) {
        this.ids = ids;
    }

    public String getMembershipName() {
        return MembershipName;
    }

    public void setMembershipName(String membershipName) {
        MembershipName = membershipName;
    }

    public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public BigDecimal getAcademicCurrency() {
		return academicCurrency;
	}

	public void setAcademicCurrency(BigDecimal academicCurrency) {
		this.academicCurrency = academicCurrency;
	}


	public Long getLoginNum() {
		return loginNum;
	}

	public void setLoginNum(Long loginNum) {
		this.loginNum = loginNum;
	}



    /** 最后登录IP 注意兼容IPV6 */
    private String lastLoginIp;

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId()
    {
        return id;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setWxCode(String wxCode)
    {
        this.wxCode = wxCode;
    }

    public String getWxCode()
    {
        return wxCode;
    }
    public void setPassword(String password)
    {
        this.password = password;
    }

    public String getPassword()
    {
        return password;
    }
    public void setSalt(String salt)
    {
        this.salt = salt;
    }

    public String getSalt()
    {
        return salt;
    }
    public void setAvatar(String avatar)
    {
        this.avatar = avatar;
    }

    public String getAvatar()
    {
        return avatar;
    }
    public void setRealname(String realname)
    {
        this.realname = realname;
    }

    public String getRealname()
    {
        return realname;
    }
    public void setMobile(String mobile)
    {
        this.mobile = mobile;
    }

    public String getMobile()
    {
        return mobile;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEmail()
    {
        return email;
    }
    public void setSex(String sex)
    {
        this.sex = sex;
    }

    public String getSex()
    {
        return sex;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setOrganizationCode(String organizationCode)
    {
        this.organizationCode = organizationCode;
    }

    public String getOrganizationCode()
    {
        return organizationCode;
    }
    public void setAge(String age)
    {
        this.age = age;
    }

    public String getAge()
    {
        return age;
    }
    public void setTeamId(Long teamId)
    {
        this.teamId = teamId;
    }

    public Long getTeamId()
    {
        return teamId;
    }
    public void setBirthday(String birthday)
    {
        this.birthday = birthday;
    }

    public String getBirthday()
    {
        return birthday;
    }
    public void setIdentity(Integer identity)
    {
        this.identity = identity;
    }

    public Integer getIdentity()
    {
        return identity;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setLastLoginTime(String lastLoginTime)
    {
        this.lastLoginTime = lastLoginTime;
    }

    public String getLastLoginTime()
    {
        return lastLoginTime;
    }
    public void setRecommendedUserId(Long recommendedUserId)
    {
        this.recommendedUserId = recommendedUserId;
    }

    public Long getRecommendedUserId()
    {
        return recommendedUserId;
    }
    public void setLastLoginIp(String lastLoginIp)
    {
        this.lastLoginIp = lastLoginIp;
    }

    public String getLastLoginIp()
    {
        return lastLoginIp;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userName", getUserName())
            .append("wxCode", getWxCode())
            .append("password", getPassword())
            .append("salt", getSalt())
            .append("avatar", getAvatar())
            .append("realname", getRealname())
            .append("mobile", getMobile())
            .append("email", getEmail())
            .append("sex", getSex())
            .append("description", getDescription())
            .append("organizationCode", getOrganizationCode())
            .append("age", getAge())
            .append("teamId", getTeamId())
            .append("birthday", getBirthday())
            .append("identity", getIdentity())
            .append("status", getStatus())
            .append("lastLoginTime", getLastLoginTime())
            .append("recommendedUserId", getRecommendedUserId())
            .append("lastLoginIp", getLastLoginIp())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }

	public Integer getDuplicateCheckCoupon() {
		return duplicateCheckCoupon;
	}

	public void setDuplicateCheckCoupon(Integer duplicateCheckCoupon) {
		this.duplicateCheckCoupon = duplicateCheckCoupon;
	}

	public Byte getArrears() {
		return arrears;
	}

	public void setArrears(Byte arrears) {
		this.arrears = arrears;
	}

	public Byte getIsRegimental() {
		return isRegimental;
	}

	public void setIsRegimental(Byte isRegimental) {
		this.isRegimental = isRegimental;
	}

    public BigDecimal getMinAcademicCurrency() {
        return minAcademicCurrency;
    }

    public void setMinAcademicCurrency(BigDecimal minAcademicCurrency) {
        this.minAcademicCurrency = minAcademicCurrency;
    }

    public BigDecimal getMaxAcademicCurrency() {
        return maxAcademicCurrency;
    }

    public void setMaxAcademicCurrency(BigDecimal maxAcademicCurrency) {
        this.maxAcademicCurrency = maxAcademicCurrency;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Long getEndTime() {
        return endTime;
    }

    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }

    public BigDecimal getUseOfAcademicCoins() {
        return useOfAcademicCoins;
    }

    public void setUseOfAcademicCoins(BigDecimal useOfAcademicCoins) {
        this.useOfAcademicCoins = useOfAcademicCoins;
    }

    @Override
    public Long getUpdateTime() {
        return updateTime;
    }

    @Override
    public void setUpdateTime(Long updateTime) {
        this.updateTime = updateTime;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

	public String getIdentityName() {
		return identityName;
	}

	public void setIdentityName(String identityName) {
		this.identityName = identityName;
	}

	public Long getJoinTime() {
		return joinTime;
	}

	public void setJoinTime(Long joinTime) {
		this.joinTime = joinTime;
	}

	public BigDecimal getDiscount() {
		return discount;
	}

	public void setDiscount(BigDecimal discount) {
		this.discount = discount;
	}
}
